chdkfandomcom-20200222-history
PropertyCase
PropertyCases Property cases are basically variables in the camera's RAM that we can read and write from CHDK by using uBasic commands get_prop and set_prop. "Under the hood" some other uBasic commands work by changing propcases, making it possible to use them in a portable way. Some propcases are read only. Often writing to a propcase will have a different effect than pressing the corresponding buttons on the camera's user interface. Typically this means that while you may change something like the shutter speed and your change will be effective in your photo, it may not be updated to the camera's on-screen display. NOTE: These properties are different for Digic II and Digic III cameras (for example, the A570IS ISO is at #149, not #21 like on the S3IS, and the white balance control is #268, not #206). Furthermore, some Digic III cameras (G7 and IXUS850IS/SD800IS) use the Digic II property set. You are advised to confirm that these properties are appropriate for your camera before you attempt to change them. To find out which prop id´s a funktion changes see this! Note: there also is now a List of Params, it needs to be filled with data though ;) __TOC__ =Digic II= =Digic III= On the A590, it seems that possible prop-id´s range from 0 to 287. Id´s greater than 287 will return always "14". =Not found= * Manual White balance settings, needed for white balance fine tuning * MF Point Zoom * AF-assist Beam * Number of shots in Custom drive mode * Review time * Selected Scene Mode * Current Display Mode, i.e. no info, more info, full info, where you cycle through by pressing disp. Where could these be stored? I scanned all Property Cases from 0 till 300, after that everything seems to be 0. PTT 01:59, 9 July 2007 (UTC) * A face is being detected Some parameters can be read with the function get_parameter_data(). Вut the numbers of parameters depends on the camera model. For example, Canon 710 IS: 72 Delay in Custom drive mode (in seconds, 1 byte) 73 Number of shots in Custom drive mode (1 byte) 9 Review time (in msec, 4 bytes) 54 Current Display Mode for record review mode - 0,1 or 2 (2 bytes) 53 Current Display Mode for view mode - 0,1 or 2 (2 bytes) = get_parameter_data() = Here are a few values that I think work that way with get_parameter_data() on my ixus 950 is... maybe someone can test and verify them for this cam or even for others? 18 LCD Brightness 56 Current Display Mode for view mode - 0,1 or 2 73 Number of shots in Custom drive mode 104 "Show clock" (in seconds) Timezone Information On my cam (ixus 950 is) get_parametr_data(20,...) seems to be the timezone information. There is a strong correlation of the following values (Names are in german or translated): (DST Must be somewhere else) 65792 London 65793 Paris 65794 Kairo 65795 Moskau 65796 Teheran 65797 Dubai 65798 Kabul 65799 Karachi 65800 Delhi 65801 Kathmandu 65802 Dacca 65803 Yangon 65804 Bangkok 65805 HongKong 65806 Tokyo 65807 Adelaide 65808 Sydney 65809 Solomon Islands 65810 Wellington 65811 Chathman Islands 65812 Samoa 65813 Honolulu 65814 Anchorage 65815 LosAngeles 65816 Denver 65817 Chicago 65818 NewYork 65819 Caracas 65820 NewFoundland 65821 Rio De Janeiro 65822 Fernando de noronha 65823 Azoren Given that there are more than 24 of such entries, these seem to be offsets into somewhere else, will need to find it there... My cam also has a travel timezone setting. I get really high numbers for when chosing one, so it looks to me like they get somewhat ORed together with a shift or so... need to still test... =Discovering propcase meanings and values= For property cases that are not yet documented, you have two ways of discovering what they are: *look for which property case changes after modifying camera settings (see below). *disassemble the Canon firmware and look for how property cases are used by functions of known purpose (see this thread). There is a PropertyCaseDump lua script that will dump out current values to a file, and also print out differences compared with a previous dump. In the Miscellaneous | Debug parameters menu, there are options to allow you to view the current PropertyCase values. There is a feature added by PlasmaHH (see this changeset) which shows changes in Property Cases. Usage: *go to debug menu, go to "ALT +/- debug action", set to "CmpProps?" (Compare propcases) *then in alt-mode, press the +/- button to initialize it (all current propcases are then saved) *then after you made changes in the camera (canon menu) you enter alt-mode, press +/- button - you will see all the props that have changed, until you exit alt-mode *if there are more than 12 changed propcases, after 15 seconds it will show the next entries. this is not convenient, but i couldnt come up with a better way for now. On the other hand: it's not clever changing so many things at once (in-camera) to find out propcases. one at a time is the better solution.